﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data;
using System.Data.OleDb;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.WebControls;

public partial class Trade_LastMonth_Sum : UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        oInfo.Text = "";
        oInfo.Text += "";
    }

    protected void gw_DataBound(object sender, EventArgs e)
    {
        if (gw.SelectedIndex >= 0)
        {
            RefreshDetals(gw.Rows[gw.SelectedIndex].Cells[1].Text);
        }
        else
            RefreshDetals("");

        Decimal amount = 0;
        foreach(System.Web.UI.WebControls.TableRow r in gw.Rows)
        {
            string str = SPEncode.HtmlDecode(r.Cells[2].Text);
            str = str.Replace("р.", "");
            str = str.Replace(" ", "");
            Decimal d = Convert.ToDecimal(str);
            amount += d;
        }
        lblAmount.Text = "Итого - " + amount.ToString("C");
    }

    protected void gw_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        GridViewRow row = gw.Rows[((GridViewSelectEventArgs)e).NewSelectedIndex];
    }

    protected void gw_SelectedIndexChanged(object sender, EventArgs e)
    {
        GridViewRow row = gw.SelectedRow;
        if (row != null)
            RefreshDetals(row.Cells[1].Text);
    }

    private void RefreshDetals(string strShopName)
    {

        if (string.IsNullOrEmpty(strShopName))
        {
            lblShopName.Text = "";
            oInfo.Text = "";
            return;
        }

        DateTime dt = DateTime.Now;
        int year = dt.Year;
        int month = dt.Month;

        string sql =
@"SELECT 
  секция
, [Сумма реализации]
, [Сумма проданного товара в закупочных ценах]
, [Сумма возвратов в закупочных ценах]
, [Сумма возвратов]
, [Сумма оптовой реализации в закупочных ценах]
, [Сумма оптовой реализации]
FROM dbo.vw_a_Trade_Progress_Traffic
WHERE 
        (Year = ?) 
    AND (Month = ?) 
    AND (магазин = ?)
";

        string connStr = SqlDS.ConnectionString;

        Decimal val1 = 0, val2 = 0, val3 = 0, val4 = 0, val5 = 0, val6 = 0;

        try
        {
            using (OleDbConnection conn = new OleDbConnection(connStr))
            {
                conn.Open();
                using (OleDbCommand cmd = new OleDbCommand(sql, conn))
                {
                    cmd.Parameters.Add("@Year", OleDbType.Integer).Value = year;
                    cmd.Parameters.Add("@Month", OleDbType.Integer).Value = month;
                    cmd.Parameters.Add("@shopname", OleDbType.VarChar).Value = strShopName;

                    OleDbDataAdapter ad = new OleDbDataAdapter(cmd);
                    DataTable tbl = new DataTable();
                    ad.Fill(tbl);

                    StringBuilder sb = new StringBuilder();
                    int cnt = 0;

                    foreach (DataRow r in tbl.Rows)
                    {
                        cnt++;
                        sb.Append(
    @"</br> <table border=1>
    <tr>
        <td style='background-color: #505050; color: #00FF00; font-size: large'>
            " + (string)r[0] +
    @"</td>
    <td style='background-color: #505050; color: #00FF00; font-size: large'>
        Сумма</td></tr>");

                        if (r[1] != DBNull.Value)
                        {
                            val1 += (Decimal)r[1];
                            sb.Append(@"<tr>
<td>&nbsp; Сумма реализации</td><td>&nbsp;" + ((Decimal)r[1]).ToString("C") +
@"</td></tr>");
                        }
                        if (r[2] != DBNull.Value)
                        {
                            val2 += (Decimal)r[2];
                            sb.Append(@"<tr>
<td>&nbsp; Сумма проданного товара в закупочных ценах</td><td>&nbsp;" + ((Decimal)r[2]).ToString("C") +
@"</td></tr>");
                        }
                        if (r[3] != DBNull.Value)
                        {
                            val3 += (Decimal)r[3];
                            sb.Append(@"<tr>
<td>&nbsp; Сумма возвратов в закупочных ценах</td><td>&nbsp;" + ((Decimal)r[3]).ToString("C") +
@"</td></tr>");
                        }
                        if (r[4] != DBNull.Value)
                        {
                            val4 += (Decimal)r[4];
                            sb.Append(@"<tr>
<td>&nbsp; Сумма возвратов</td><td>&nbsp;" + ((Decimal)r[4]).ToString("C") +
@"</td></tr>");
                        }
                        if (r[5] != DBNull.Value)
                        {
                            val5 += (Decimal)r[5];
                            sb.Append(@"<tr>
<td>&nbsp; Сумма оптовой реализации в закупочных ценах</td><td>&nbsp;" + ((Decimal)r[5]).ToString("C") +
@"</td></tr>");
                        }
                        if (r[6] != DBNull.Value)
                        {
                            val6 += (Decimal)r[6];
                            sb.Append(@"<tr>
<td>&nbsp; Сумма оптовой реализации</td><td>&nbsp;" + ((Decimal)r[6]).ToString("C") +
@"</td></tr>");
                        }
                    }

                    if (cnt > 0)
                        sb.Append(@"</table></br>");

                    lblShopName.Text = strShopName;
                    oInfo.Text = "";
                    oInfo.Text +=
                    @"
<table border=1>
    <tr>
        <td style='background-color: #505050; color: #00FF00; font-size: large'>
            Значение</td>
        <td style='background-color: #505050; color: #00FF00; font-size: large'>
            Сумма</td>"
                    + @"</tr><tr>
        <td>&nbsp; Сумма реализации</td><td>&nbsp;" + val1.ToString("C") +
                    @"</td></tr>"

                    + @"</tr><tr>
        <td>&nbsp; Сумма проданного товара в закупочных ценах</td><td>&nbsp;" + val2.ToString("C") +
                    @"</td></tr>"

                    + @"</tr><tr>
        <td>&nbsp; Сумма возвратов в закупочных ценах</td><td>&nbsp;" + val3.ToString("C") +
                    @"</td></tr>"

                    + @"</tr><tr>
        <td>&nbsp; Сумма возвратов</td><td>&nbsp;" + val4.ToString("C") +
                    @"</td></tr>"

                    + @"</tr><tr>
        <td>&nbsp; Сумма оптовой реализации в закупочных ценах</td><td>&nbsp;" + val5.ToString("C") +
                    @"</td></tr>"

                    + @"</tr><tr>
        <td>&nbsp; Сумма оптовой реализации</td><td>&nbsp;" + val6.ToString("C") +
                    @"</td></tr>"

                    + @"</table>
";

                    oInfo.Text += sb.ToString();

                }
            }
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }

}

